#pragma once

#include "IAudioProvider.h"
#include "IInputProvider.h"
#include "IScoreProvider.h"

class ServiceLocator
{
public:
	static IAudioProvider* GetAudio() { return _audioProvider; } const
		
	static void RegisterAudio(IAudioProvider *provider)
	{
		_audioProvider = provider;
	}

	static IInputProvider* GetInput() { return _inputProvider; } const

	static void RegisterInput(IInputProvider *provider)
	{
		_inputProvider = provider;
	}
	static IScoreProvider* GetScore() { return _scoreProvider; } const

	static void RegisterScore(IScoreProvider *provider)
	{
		_scoreProvider = provider;
	}

private:
	static IAudioProvider* _audioProvider;
	static IInputProvider* _inputProvider;
	static IScoreProvider* _scoreProvider;
};

